package club.babyf.nativeai.demo.algorithm;

/**
 * _14_FindSingleElement.
 *
 * @author zhanglei.
 * @date 2025/5/27 10:55.
 * @description 有一个int数组，里面的元素符合下面的特征，最多有一个元素出现一次，其余元素均出现两次，输入一个这样的数组，请写一个完整的函数找出是否有出现一次的元素？如有，这个元素是什么？举例： int[] = {1, 2, 5, 2, 1}，返回5 int[] = {-1, 2, -1, 2}，返回找不到.
 */
public class _14_FindSingleElement {

    public static String findSingleElement(int[] nums) {
        if (nums == null || nums.length == 0) {
            return "找不到";
        }
        int xor = 0;
        for (int num : nums) {
            xor ^= num;
        }
        if (xor != 0) {
            return String.valueOf(xor);
        } else {
            if (nums.length % 2 != 0) {
                return "0";
            } else {
                return "找不到";
            }
        }
    }

    public static void main(String[] args) {
        int[] test1 = {1, 2, 5, 2, 1};
        System.out.println(findSingleElement(test1)); // 输出5

        int[] test2 = {-1, 2, -1, 2};
        System.out.println(findSingleElement(test2)); // 输出找不到
    }

}
